This invention relates to a method and an apparatus for correcting the tool feed rate in a numerical control system, especially for three dimensional machining.
FIG. 1 is a block diagram to show an apparatus which realizes the conventional tool feed rate correcting method in a numerical control system wherein a machining program 11 is read in a decoding section 12 for interpretation, and a tool feed information SA (e.g. tool feed rate, current tool position, target position, etc.) concerning a tool feed for one block is sent out to a reference unit displacement calculating section 13. Based upon the tool feed information SA for one block, the reference unit displacement calculating section 13 calculates a reference unit displacement SB (.DELTA.X.sub.s, .DELTA.Y.sub.s, .DELTA.Z.sub.s) or the displacement in each direction for one interpolation period when the feed override value is 100%, and sends the same to a unit displacement calculating section 14. Simultaneously, a feed override value SD (Fr) based on the electric signal SC from a feed override switch 16 on an operation panel is input to the unit displacement calculating section 14 via a feed override controlling section 17. The reference unit displacement SB and the feed override value SD are multiplied by the unit displacement calculating section 14 to obtain unit displacement SE (.DELTA.X, .DELTA.Y, .DELTA.Z) which is the displacement in each direction for the current one interpolation period to be sent to a position calculating section 15. The unit displacement SE is added to the tool position (X, Y, Z) at the previous interpolation at the position calculating section 15 to obtain the tool position (X+ .DELTA.X, Y+ .DELTA.Y, Z+ .DELTA.Z) at the current interpolation and sent out to a servo controller.
Operation of the system having the above structure will be described referring to the flow chart shown in FIG. 2. The reference unit displacement calculating section 13 calculates the reference unit displacement (.DELTA.X.sub.s, .DELTA.Y.sub.s, .DELTA.Z.sub.s) according to the tool feed information for one block from the decoding section 12 (Step S21). The unit displacement calculating section 14 calculates the product of the reference unit displacement (.DELTA.X.sub.s, .DELTA.Y.sub.s, .DELTA.Z.sub.s) from the reference unit displacement calculating section 13 and the feed override value Fr from the feed override controlling section 17, or the unit displacement (.DELTA.X, .DELTA.Y, .DELTA.Z)=(Fr.times..DELTA.X.sub.s, Fr.times..DELTA.Y.sub.s, Fr.times..DELTA.Z.sub.s) (Steps S22 and S23). The position calculating section 15 calculates the tool position (X+.DELTA.X, Y+.DELTA.Y, Z+.DELTA.Z) at the current interpolation by adding the unit displacement (.DELTA.X, .DELTA.Y, .DELTA.Z) from the unit displacement calculating section 14 to the tool position (X, Y, Z) at the previous interpolation (Step S24). The servo controller interpolates based on the tool position (X+ .DELTA.X, Y+.DELTA.Y, Z+ .DELTA.Z) at the current interpolation from the position calculating section 15, and confirms whether or not the tool position at the current interpolation has reached the target position (X.sub.g, Y.sub.g, Z.sub.g) (Step S25). If not, the procedure returns to the above Steps 22 to repeat aforementioned operations. However, when the tool has reached the target position, the procedure returns to the above Step S21 to commence the aforementioned operations for the subsequent block.
In the case where a work is subjected to three dimensional machining by using a ball end mill, the portion of the tool that cuts the work changes depending on the feed direction of the tool. For instance, even if the same tool is used to cut a work at a tool feed rate, a revolutional speed, a pick and a grain depth of the cut, the tool cuts a work at its outer periphery when the tool goes upward on a sloped plane as shown in FIG. 3. Conversely, when it goes down on the slope, the tip end of the tool cuts the work as shown in FIG. 4. This means that the cutting rate and the front rate vary depending on the cutting direction, resulting in a remarkable difference in machining loads. It was heretofore difficult to machine a work while constantly correcting the tool feed speed in a manner that allows the machining loads to remain within a predetermined range. Although it is possible for a part program to determine the tool feed rate depending on the direction of the tool feed, such a method is not practical as the programming becomes extremely complicated. Moreover, even though it is possible to control the tool feed rate while monitoring the machining loads by a monitor device, the monitor device is too expensive to be practically used.